// Copyright 2012 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
es5id: 6.4_b
description: Tests that invalid time zone names are not accepted.
author: Norbert Lindenberg
---*/

function Test() {
    var invalidTimeZoneNames = [
        "",
        "MEZ", // localized abbreviation
        "Pacific Time", // localized long form
        "cnsha", // BCP 47 time zone code
        "invalid", // as the name says
        "Europe/İstanbul", // non-ASCII letter
        "asıa/baku", // non-ASCII letter
        "europe/brußels"  // non-ASCII letter
    ];

    invalidTimeZoneNames.forEach(function (name) {
        // this must throw an exception for an invalid time zone name
        assert.throws(RangeError, function() {
            var format = new Intl.DateTimeFormat(["de-de"], {timeZone: name});
        }, "Invalid time zone name " + name + " was not rejected.");
    });
}

// preheat
const NUMBER_OF_PREHEAT = 1;
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}

ArkTools.jitCompileAsync(Test);
assert.sameValue(ArkTools.waitJitCompileFinish(Test), true, '[JIT] JIT disabled.');

// test
const NUMBER_OF_TEST = 1; // or 2
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}
